package com.wcs.exam.dao.impl.mapper.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 考试用户记录
 * </p>
 *
 * @author wcs
 * @since 2025-03-13
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("exam_user_record")
public class ExamUserRecord implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 考试类型
     */
    private Integer examType;

    /**
     * 关联ID
     */
    private Long relateId;

    /**
     * 课程ID
     */
    private Long courseId;

    /**
     * 试卷ID
     */
    private Long paperId;

    /**
     * 评阅方式(1:系统评阅，2:人工评阅)
     */
    private Integer evaluationMethod;

    /**
     * 考试成绩设置(1：记录学员最高成绩、2：记录学员最新成绩)
     */
    private Integer examScoreType;

    /**
     * 作答时长(单位：分钟)
     */
    private Integer answerTime;

    /**
     * 用户作答时间(单位：秒)
     */
    private Integer userAnswerTime;

    /**
     * 考试结束时间
     */
    private LocalDateTime endTime;

    /**
     * 交卷时间
     */
    private LocalDateTime submitTime;

    /**
     * 考试总分
     */
    private BigDecimal totalScore;

    /**
     * 考试合格分数
     */
    private BigDecimal passScore;

    /**
     * 人脸识别(0：关闭、1：开启)
     */
    private Boolean faceId;

    /**
     * 人脸识别通过(0：未通过、1：通过)
     */
    private Boolean faceIdPass;

    /**
     * 人脸识别返回最佳照片
     */
    private String faceIdImg;

    /**
     * 切屏限制次数
     */
    private Integer switchScreenCount;

    /**
     * 切屏判断时间(单位：秒)
     */
    private Integer switchScreenTime;

    /**
     * 用户切屏次数
     */
    private Integer userSwitchScreenCount;

    /**
     * 用户得分
     */
    private BigDecimal userScore;

    /**
     * 考试状态(1:考试中、2:待批改、3:批改中、4:批改完成)
     */
    private Integer examStatus;

    /**
     * 合格状态(1:未知、2:合格、3:不及格)
     */
    private Integer passStatus;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 创建时间
     */
    private LocalDateTime gmtCreate;

    /**
     * 修改时间
     */
    private LocalDateTime gmtModified;
}
